A Machine-independent Debugger

نویسندگان

  • David R. Hanson
  • Mukund Raghavachari
چکیده

cdb is a simple, source-level debugger for ANSI/ISO C programs compiled by lcc, a retargetable C compiler. cdb is completely independent of its target architecture. This independence is achieved by embedding a small amount of itself — a ‘nub’ — in the program to be debugged and by having the compiler emit machine-independent symbol-table data and related code. This paper describes the design of a nub interface for debugging, a target-independent implementation of this interface for cdb, and the implementation of cdb itself. When compared to platform-specific debuggers, cdb’s implementation is minuscule: the nub, debugger, and associated communications routines take about 1500 lines of C, and fewer than 600 lines were added to lcc’s front end to emit symbol tables and breakpoint hooks. All this code is machine independent.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Multi-level Virtual Machine Debugging Using the Java Platform Debugger Architecture

Debugging virtual machines (VMs) presents unique challenges, especially meta-circular VMs, which are written in the same language they implement. Making sense of runtime state for such VMs requires insight and interaction at multiple levels of abstraction simultaneously. For example, debugging a Java VM written in Java requires understanding execution state at the source code, bytecode and mach...

متن کامل

A Machine-Independent Debugger--Revisited

Most debuggers are notoriously machine-dependent, but some recent research prototypes achieve varying degrees of machine-independence with novel designs. Cdb, a simple source-level debugger for C, is completely independent of its target architecture. This independence is achieved by embedding symbol tables and debugging code in the target program, which costs both time and space. This paper des...

متن کامل

A Debugger for Standard Ml 1

We have built a portable, instrumentation-based, replay debugger for the Standard ML of New Jersey compiler. Traditional \source-level" debuggers for compiled languages actually operate at machine level, which makes them complex, diicult to port, and intolerant of compiler optimization. For secure languages like ML, however, debugging support can be provided without reference to the underlying ...

متن کامل

What does a compiler do ?

Machine Interpreter P.abs Abstract Machine Code Integrated Programming Environment with Structure Editor, Compiler, and Debugger.

متن کامل

A Simple and Extensible Graphical Debugger

deet is a simple but powerful debugger for ANSI C and Java. It differs from conventional debuggers in that it is machine-independent, graphical, programmable, distributed, extensible, and small. Low-level operations are performed by communicating with a “nub,” which is a small set of machine-dependent functions that are embedded in the target program at compile-time, or are implemented on top o...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Softw., Pract. Exper.

دوره 26  شماره 

صفحات  -

تاریخ انتشار 1996